package com.shop.cereshop.commons.tencent.im.model.callback.request;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.shop.cereshop.commons.tencent.im.model.request.MsgSeqItem;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.List;

/**
 * @description: 撤回群消息之后回调 请求体
 * CallbackCommand: Group.CallbackAfterRecallMsg
 * @see <a href="https://cloud.tencent.com/document/product/269/73141">撤回群消息之后回调</a>
 *
 * @author zdd
 * @date 2025/9/11 10:01
 * @version 1.0
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class AfterRecallGroupMsgCallbackRequest extends CallbackRequest implements Serializable {
    private static final long serialVersionUID = -1785862540381717924L;
    /**
     * 回调命令
     */
    @JsonProperty("CallbackCommand")
    private String callbackCommand;

    /**
     * 撤回群聊消息的操作者 UserID
     */
    @JsonProperty("Operator_Account")
    private String operatorAccount;

    /**
     * 群组类型，例如 Public
     */
    @JsonProperty("Type")
    private String type;

    /**
     * 群组 ID
     */
    @JsonProperty("GroupId")
    private String groupId;

    /**
     * 撤回消息 MsgSeq 列表
     */
    @JsonProperty("MsgSeqList")
    private List<MsgSeqItem> msgSeqList;

    /**
     * 话题的 ID，若具有此选项表示撤回的是话题中的消息，仅支持话题的社群适用此选项
     */
    @JsonProperty("TopicId")
    private String topicId;

    /**
     * 事件触发的毫秒级别时间戳
     */
    @JsonProperty("EventTime")
    private Long eventTime;

}
